home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
comm
/
fido
/
shelter191a.lha
/
docs
/
RFH.DOC
< prev
next >
Wrap
Text File
|
1994-07-27
|
8KB
|
236 lines
;$VER: RFH Doc The WPL Remote Freq Handler Function Host Williamson 55.10
RFH is an Arexx FunctionHost version of the RFS WPL File Request
Server. RFH is identical to RFS in most respects, but is a stripped down
version (about 1/2 the size) using a smaller config file (about 1/3
smaller). The RFH.cfg config files is read only when RFH is loaded an
dopens a port, or when the RFHCFG command is received. The following RFS
features and/or functions are not present in RFH.
- all support of human requests removed
- Personal message service removed.
- FirstCall text removed
- Header text removed
- Tail text removed
- Debug and Vebose output removed
- config file format different
RFH processes requests approximately twenty times faster than RFS. It
supports file descriptions in FileNote format, and in DLG, TransAmiga and
Excelsior BBS formats.
Compiling:
RFH may be compiled with the following command line:
RexxPlus Mail:rexx/RFH.rexx +UL(xferq.library,0,-30,0) +BS -MW +VE
Rename RPDIR:RFH.rexx to RFH.
Configuration:
Nodelist flag should be set to XX.
All configuration options are documented in CFG:RFH.cfg. The only
other external file required is the xfreqsh compatible list of freqable
files.
Freq list:
The freq list is in the format:
request_name [!password] fullpathname
RFSfreqlist.rexx, Wfilelist.rexx and Falcon FileMGR.rexx all create
such a list, with password, magic name and auto fullpath update support.
Other xfreqsh freq list creators such as GKupload and others may be
compliant also.
For DLG systems, this script by Denis Turcotte creates the freq list:
List File:(?|??|???|????)/~(enterarea.txt|POINTERS.FILE|User.file|.info|*.fd|File.dat) FILES NOHEAD LFORMAT "%N %F%N" to t:flist
sort t:flist t:flist
join cfg:magic.lst t:flist as cfg:FREQ.LST
delete t:flist QUIET
Update Requests:
The FTS-0006 update request specification was written, as with most
other FTSs, to document existing practice with a particular piece of
software. However, it is obviously NOT user friendly, as it requires
conversion between 'human' time and unix time. While this is easily
accomplished by programs which create .REQ files, it is not so simple for
people who write them manually.
Therefore, it was proposed that a new "UPDATE" type be implemented that
can be used by humans. QuickSilver and FreqMate now include support for
this format.
This is SIMPLY:
+/-Uyymmdd[hhmmss]
Where the time is optional and GMT offset is NOT taken into account.
Both forms (date and datetime) are accepted by RFS.
It has been suggested in the NET_DEV echo that the Nodelist FLAG "XU"
be used to indicate this type of update request handling.
In addition, FTS-0006 standard unix timestamp update requests are
processed.
WildCards and Magic Request Names:
RFH can use AmigaDOS pattern matching facilities. This SHOULD mean
that all pattern matching specifications should work, although this has NOT
been tested. This also means that the underscore bug of AmigaDOS's pattern
matching unfortunately affects operations. If a fullpath name contains an
underscore preceeding the PATTERN, it may be considered a match by
AmigaDOS.
Two configuration options affect how wildcards are processed:
MatchFirst - if TRUE, only the first file matching is sent
MultiMagic - if TRUE, multiple files are send for MAGIC names
Startup:
RFH is launched during mailer slave (modemline) startup, one port for
each line that will accept file requests.
RUN >NIL: RX RFH WPL_Application_Basename line
or
RUN >NIL RPDIR:RFH WPL_Application_Basename line
where:
WPL_Application_Basename - WSC-0004 compliant wpl-application
basename in lowercase.
line - the modem line
eg:
RUN >NIL RFH porticus 2
Arexx Commands:
Arexx Port name: RFH$(line)
The RFH ports commands:
REQ - process a file request
RFHCFG - re-reads RAM:RFH.CFG
- This will be executed when GenMailer is run with
'Opt CONFIG'
- Can also be run from CLI
RX "Address RFH2 RFHCFG"
RFHEXIT - exits
To close down an RFH port:
Rx "Address RFH3 RFHEXIT"
Request Processing:
REQ baud host reqfile listed remoteaddress remotesysop
Baud - modem<>modem bps
host - our 5d Address for this session
reqfile - fullpathname of file request to be processed
listed - caller is in nodelist or site cache
remoteaddress - 5D callers address
remotesysop - callers names (nodelist, cache or emsi data)
example mailer call:
RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile)
$(listed) $(remote.address) $(remote.sysop)"
RFH Installation for JamMail:
JamMail does not support any direct WPL file request handlers other
than XfreqSH, so to use RFH you will have to Edit your jammail.wpl.
Perhaps you can convince James McOrmond to add support for RFH, the
information herein should be sufficent in either case.
After configuring JamMail to use XfreqSh, find the following lines
in the 'postinbound:' prodcedure:
Set whatrun "Run $(xferqsh) >>$(freqlog) $(freqcfg) $(remfile) $(infile) \"$(Remote.Address)\" \"Received at $(baud) on ${$(Line).date} $<Time>\""
RexxMsg SY REXX "Address 'COMMAND' '$(whatrun)'"
Return
As far as I know, JamMail does not set any variable to indicate that a
site is IN the nodelist or PhoneBook. Therefore we will manually set the
$(listed) variable. If there is such a variable in JamMail and it is set
as a boolean (0 or 1) then substitute it for $(listed). (and tell me about
it so I can update this ;)
replace the above code with either:
Set listed 1
RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)"
Clear listed
Return
or
RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) 1 $(remote.address) $(remote.sysop)"
Return
Now find each 'startup-' label (startup-1:, startup-2: etc) and add
the following just before the 'Jump slaveloop' instruction for each slave
that will handle file requests:
System "Run >NIL: Rx RFH jammail $(line)"
or if you have compiled RFH.rexx:
System "Run >NIL: RFH jammail $(line)"
To have the RFH ports close when the mailer exits, you have to find
all code sections where a slave exit occurs.
Find this piece of code in the 'WaitRing:' procedure:
Set RC $<abort>
FalseJump BangIt2
RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
ModemClose
Return
Insert this before the 'Return'
RexxMsg FY RFH$(line) "RFHEXIT"
Find this section of code after 'NotBReakcNow2:'
Set RC $<abort>
FalseJump WaitRing1
RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
ModemClose
Return
Insert this before the 'Return'
RexxMsg FY RFH$(line) "RFHEXIT"
JamMail does not follow the WSC standards in respect to LogProc
loggroup names. However, neither do any of the Shelter Mailers :) So you
will have to edit RFH.rexx to change the loggroup name assignment
from:
loggroup=lower(wplport)||'wpl'
to
loggroup=wplport||'Logs'
As far as I know, unlike Shelter Mailers, JamMail does not have a
facility for reconfiguration while running. If you wish to add support for
the RFHCFG command, please ask James to add support for slave
unload/releoad.
You may still use the RFHCFG command with the following command line by
directly addressing the RFH PORT.:
Rx "Address RFH2 RFHCFG"
This should do it.